Currently, dialog systems are widely used in the information technology industry, especially in the form of mobile applications for cell phones and tablet computers. A dialog system can include a computer-based agent having a human-centric interface for accessing, processing, managing, and delivering information. Dialog systems are also known as chat information systems, spoken dialog systems, conversational agents, chatter robots, chatterbots, chatbots, chat agents, digital personal assistants, automated online assistants, and so forth. All these terms are within the scope of the present disclosure and referred to as a “Dialog System” for simplicity.
Traditionally, a dialog system interacts with its users in natural language to simulate an intelligent conversation and provide personalized assistance to the users. For example, a user may generate requests to the dialog system in the form of conversational questions, such as “What is the weather like in Palo Alto?” and receive corresponding answers from the dialog system in the form of audio and/or displayable messages. The users may also provide voice commands to the dialog system requesting the performance of certain functions, including, for example, generating e-mails, making phone calls, searching particular information, acquiring data, navigating, requesting notifications or reminders, and so forth. These and other functionalities make dialog systems very popular as the dialog systems may be of great help, especially for holders of portable electronic devices such as smart phones, cellular phones, tablet computers, gaming consoles, and the like.
Although the demand for dialog systems for third party mobile applications and web services has been growing, it is not an easy task to create a well-operating dialog system. Each dialog system may have a dialog system interface and dialog system engine. The dialog system interface may be responsible for receiving user inputs and delivering dialog system responses to the user. The dialog system engine may be responsible for transforming voice user inputs into text inputs, interpreting text inputs, and generating corresponding responses to text inputs. The process running on the dialog system engine is also known as “natural language processing” (NLP). Development of NLP models is not only very time consuming, but is also a highly technical task. Accordingly, currently existing dialog systems may be very different in their capabilities. For example, a dialog system can properly work for generating emails and search information on the Internet, but the dialog system may not be properly configured to handle user requests related to scheduling events or booking hotel rooms. Additionally, some dialog systems may well handle booking requests, but may be not able to address generating email requests by end users. Therefore, many end users may want to extend functionalities of the dialog systems with which they work.